package com.zliblike_platform.mapper;

import com.zliblike_platform.vo.UploadHistoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 上传历史Mapper
 */
@Mapper
public interface UploadHistoryMapper {
    
    /**
     * 插入上传历史记录
     * @param userId 用户ID
     * @param bookId 书籍ID
     * @return 影响行数
     */
    Integer insertUploadHistory(@Param("userId") Integer userId, @Param("bookId") Integer bookId);
    
    /**
     * 查询用户上传历史
     * @param userId 用户ID
     * @param status 状态
     * @param offset 偏移量
     * @param limit 限制数量
     * @return 上传历史列表
     */
    List<UploadHistoryVO> selectUserUploads(@Param("userId") Integer userId, 
                                            @Param("status") String status, 
                                            @Param("offset") int offset, 
                                            @Param("limit") int limit);
    
    /**
     * 更新上传状态
     * @param uploadId 上传ID
     * @param status 状态
     * @param reason 拒绝原因
     * @return 影响行数
     */
    int updateUploadStatus(@Param("uploadId") Integer uploadId, 
                          @Param("status") String status, 
                          @Param("reason") String reason);
    
    /**
     * 查询待审核的上传
     * @param offset 偏移量
     * @param limit 限制数量
     * @return 上传历史列表
     */
    List<UploadHistoryVO> selectPendingUploads(@Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 统计上传记录数
     * @param status 状态
     * @return 记录数
     */
    int countUploads(@Param("status") String status);
} 